home *** CD-ROM | disk | FTP | other *** search
- /*
- * LDEF for dmz
- *
- * v1.0 2/18/90 - pvh
- *
- * Draws each cell. each cell is divided into 5 Pascal based strings. this LDEF
- * simply parses thoses strings and displays at a set incremental position.
- *
- * To be safe, lock the LDEF down either when you are being called or just set the
- * lock bit on the resource (which is what we opted for). QuickDraw may move us
- * if we're not locked down.
- *
- * We're only worried about two messages here: lDrawMsg & lHiliteMsg.
- */
-
- #include <Lists.h>
- #include <Dialogs.h>
- #include <AppleTalk.h>
- #include "dmz.h"
-
- void DoHilite();
- void DrawItem();
-
- pascal void MAIN (short lMessage, Boolean lSelect, Rect *lRect, Cell lCell,
- short lDataOffset, short lDataLen, ListHandle lHandle)
- {
- #pragma unused (lCell, lDataLen)
-
- myNetworkEntity *bob;
- FontInfo info;
- short rectLeftCoord, rectTopCoord;
- GrafPtr ourWindow;
- unsigned char handleState;
-
- GetPort(&ourWindow);
-
- switch(lMessage)
- {
- case lDrawMsg:
- /*
- * Just blow up.
- */
- handleState = HGetState((Handle)(**lHandle).cells);
- HLock((Handle)(**lHandle).cells);
- EraseRect(lRect);
-
- /*
- * Get our data from the cell. Convieniently put in to our known structure.
- */
- bob = (myNetworkEntity *) ((Ptr) *((Handle)(**lHandle).cells) + (long)lDataOffset);
-
- /*
- * Normal drawing mode (just in case). And get font info for drawing.
- */
- PenNormal();
- GetFontInfo(&info);
-
- /*
- * Save these guys for later. Save a few bytes.
- */
- rectLeftCoord = lRect->left;
- rectTopCoord = lRect->top + info.ascent;
-
- /*
- * Draw each string as they come up.
- */
- MoveTo(rectLeftCoord + 3, rectTopCoord);
- DrawString((ConstStr255Param)bob->object);
-
- MoveTo(rectLeftCoord + 200, rectTopCoord);
- DrawString((ConstStr255Param)bob->type);
-
- MoveTo(rectLeftCoord + 372, rectTopCoord);
- DrawString((ConstStr255Param)bob->net);
-
- MoveTo(rectLeftCoord + 415, rectTopCoord);
- DrawString((ConstStr255Param)bob->node);
-
- MoveTo(rectLeftCoord + 448, rectTopCoord);
- DrawString((ConstStr255Param)bob->socket);
-
- /*
- DrawItem(kObjectID, ourWindow, rectTopCoord, (char *) &bob->object, lRect);
- DrawItem(kTypeID, ourWindow, rectTopCoord, (char *) &bob->type, lRect);
- DrawItem(kNetID, ourWindow, rectTopCoord, (char *) &bob->net, lRect);
- DrawItem(kNodeID, ourWindow, rectTopCoord, (char *) &bob->node, lRect);
- DrawItem(kSocketID, ourWindow, rectTopCoord, (char *) &bob->socket, lRect);
- */
-
- if (lSelect)
- DoHilite(lRect);
-
- HSetState((Handle)(**lHandle).cells, handleState);
- break;
- case lHiliteMsg:
- /*
- * Highlight it?
- */
- DoHilite(lRect);
- break;
- default:
- break;
- }
-
- }
-
- void DoHilite(Rect *lRect)
- {
- BitClr((Ptr) HiliteModePtr, pHiliteBit); /* use color if we got it! */
- InvertRect(lRect);
- }
-
- void DrawItem(short whichItem, WindowPtr ourWindow, short topCoord, char *itemString,
- Rect *lRect)
- {
- #pragma unused (lRect)
-
- short kind;
- Handle h;
- Rect r;
-
- GetDItem((DialogPtr) ourWindow, whichItem, &kind, &h, &r);
- MoveTo(r.left, topCoord);
- DrawString((ConstStr255Param)itemString);
- }
-
-